package com.flower.mapper;


import org.apache.ibatis.annotations.Param;

import com.flower.pojo.Product;

import java.util.List;

/**
 * 商品模块
 */
public interface IProductDao {
	
    /**
     * 查询前8条热门商品
     */
    List<Product> findHotProduct();

    /**
     * 查询前8条最新商品
     */
    List<Product> findNewProduct();
    
    /**
     * 查询前8条特价商品
     */
    List<Product> findBargainProduct();
    
    /**
     * 获取分页所有商品信息
     * @param start  下标索引
     * @param size   页面大小
     * 
     * 使用@Param注解来声明参数时，sql可使用 #{} 或 ${} 的方式都可以
     * @Param注解JavaBean对象
     */
    List<Product> findAllProduct(@Param("start") int start, @Param("size") int size);
    
    /**
     * 获取所有商品的条数
     */
    int getAllNum();

    /**
     * 根据 cid 获取总记录数
     * @param cid   类别编号
     */
    int getAllRecordNO(int cid);

    /**
     * 获取分页商品信息
     * @param cid   类别编号
     * @param start    下标索引
     * @param size  页面大小
     */
    List<Product> findAllProductByCid(@Param("cid") int cid, @Param("start") int start, @Param("size") int size);

    /**
     * 根据商品编号查询商品详情
     * @param pid   商品编号
     */
    Product findProductByPid(int pid);
    
}
